/**
 * 
 */
package com.lanswon.qzsmk.service.commonService;

import javax.jws.WebParam;
import javax.jws.WebService;

import com.lanswon.qzsmk.model.Personal;
import com.lanswon.qzsmk.vo.LossCardInfo;
import com.lanswon.qzsmk.vo.ResultVo;
import com.lanswon.qzsmk.vo.SupplementCardInfo;

/**
 * @author sun
 *
 */
@WebService
public interface DockingInternetService {
	
	String testWS();
	

	/**
	 * 查询满足挂失条件的信息
	 * @param cc
	 * @return
	 */
	ResultVo queryLossCard(@WebParam(name="lossCardInfo")LossCardInfo lci);
	
	/**
	 * 提交挂失信息
	 * @param lci
	 * @return 凭证
	 * @throws Exception 
	 */
	ResultVo commitLossCardInfo(@WebParam(name="lossCardInfo")LossCardInfo lci) throws Exception;
	
	/**
	 * 查询满足补卡条件的综合信息
	 * @param lossCertNo 挂失凭证编号
	 * @param paperType 证件类型
	 * @param paperNo 证件号码
	 * @return
	 */
	ResultVo  querySupplementCard(@WebParam (name="supplementCardInfo") SupplementCardInfo sci);

	/**
	 * 提交补卡信息
	 * @param sci
	 * @return
	 */
	ResultVo  commitSupplementCardInfo(@WebParam (name="supplementCardInfo") SupplementCardInfo sci);

	
	/**
	 * 查询所有网点	
	 * @return
	 */
	public ResultVo queryBranchInternet(@WebParam(name="streetId")String streetId,@WebParam(name="orgProperty")String orgProperty,@WebParam(name="serverType")String serverType);
	
	/**
	 * 根据证件号码检查能否办指定卡产品
	 * @param paperType
	 * @param paperNo
	 * @param cardProductCode
	 * @return
	 */
	public ResultVo checkIsCardProductbyPaperNo(@WebParam (name="paperType") String paperType ,
			@WebParam (name="paperNo") String paperNo  , @WebParam(name="cardProductCode")	String cardProductCode);

	
	/**
	 * 单笔申请
	 * 
	 * @return
	 */
	public ResultVo singleApplication( @WebParam(name="personal")Personal p,
			@WebParam(name="cardProductCode")	String cardProductCode, @WebParam(name="cardPhysicalType")String cardPhysicalType);

	/**
	 * 获取所有身份证件类型
	 */
	public ResultVo queryAllCertificates();
	
	/**
	 * 获取所有的线上能申请的卡产品，目前只有普通卡
	 */
	public ResultVo queryAllCardProdunctDefinition();
	
	/**
	 * 获取所有的卡物理类型
	 */
	public ResultVo queryAllCardPhysicsType();
	
	/**
	 * 根据证件号码获取个人信息
	 * @param paperType 证件类型
	 * @param paperNo 证件号码
	 * @return 个人信息
	 */
	public ResultVo queryPersonalByPaperNoAndPaperType(String paperType,String paperNo);
	
	/**
	 * 查询个人名下的所有的市民卡及其消费记录
	 * @param paperType 证件类型
	 * @param paperNo 证件号码
	 * @param cardPCode 卡产品代码
	 * @param tradeCondition 交易查询过滤条件   0查询全部    1查询充值记录  2查询消费记录
	 * @return
	 */
	ResultVo  queryPersonalCardInfoAndConsumeRecordsByPaperNo(@WebParam(name="citizenCardNo")String citizenCardNo,@WebParam(name="year")String year,@WebParam(name="month")String month,@WebParam(name="tradeCondition")String tradeCondition,@WebParam(name="appFlag")String appFlag);

	/**
	 * 查询进度
	 * @param paperNo 证件号码
	 * @param paperType 证件类型
	 * @return 0：待申请  1：已申请待领取 2：已领取
	 */
	public ResultVo queryApplySchedule(String paperNo, String paperType,String cardPCode);                                

	/**
	 * 查询个人挂失信息
	 * @param certNo 挂失凭证号
	 * @return
	 */
	ResultVo queryPersonalByCertNo(String certNo);
	
	/**
	 * 获取个人名下所有卡产品
	 * @param paperType
	 * @param paperNo
	 * @param cardPCode
	 * @return
	 */
	ResultVo queryCardProdunctByPersonal(@WebParam(name="paperType")String paperType, @WebParam(name="paperNo")String paperNo, @WebParam(name="cardPCode")String cardPCode);
	
	/**
	 * 查询所有民族
	 * @return
	 */
	public ResultVo queryNation();
	
	/**
	 * 根据网点名称查询网点信息
	 * @param branchName
	 * @return
	 */
	public ResultVo queryOrgByName(String branchName);
	
	/**
	 * 查询所有网点性质
	 * @return <机构性质id,机构性质>
	 */
	public ResultVo queryOrgProperty();
	
	/**
	 * 查询所有网点的所在街道
	 * @return <街道id,街道具体地址>
	 */
	public ResultVo queryAllBranchStreet();
}
